﻿using ibba.src.sl.recursos.MVVM;

namespace ibba.src.noriskbo.ViewModels.Base
{
    public abstract class ViewModelCadastroBase<T>: ViewModelBase
    {
        private T _entidade;
        public T Entidade 
        {
            get { return _entidade; }
            set { base.SetValue("Entidade", ref _entidade, value); }
        }
        
        public abstract void ObterPorId(int pId);
        public virtual void Editar()
        {
            base.StateView = StateViewType.Changing;
        }
        public abstract void Salvar();
        public abstract void Cancelar();
        public abstract void Excluir();
        public abstract void Fechar();
        //public abstract void Copiar();        
        //public abstract void SolicitarAprovacao();
        //public abstract void Aprovar();
        //public abstract void Rejeitar();        

        public abstract bool EnabledSaveButton { get; }
        
        /*
		public bool EnabledSaveButton
        {
            get 
            {
                bool HasError = false;
                if ((HasError == false) &&
                    (base.StateView == StateViewType.Changing || base.StateView == StateViewType.Inserting))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }            
        }
        */
    }
}
